# -*- coding: utf-8 -*-
"""
Created on Sun Feb  3 00:53:59 2019

python3.6.3
Anaconda->spyder
opencv3.4.5
代码参考《OpenCV3计算机视觉 Python语言实现》（第二版）
@author: Administrator
"""

import cv2
#import numpy as np
print(cv2.__version__)       #查看opencv的版本

img = cv2.imread('pycv.png') # 读取图片，以数组形式存储
print(img.shape)             # 打印图片的宽高跟色彩通道数，（宽，高，色彩通道）
print(img.size)              # 打印图片的大小，即宽 * 高
print(img.dtype)             # 打印图片的数组里数据的类型
cv2.imshow('img',img)        # 窗口显示出图片

'''复制备份图像'''
img2= img.copy()
img3 = img.copy()

'''左边是图像上某个像素点的坐标，右边是色彩[B,G,R]'''
img2[0,0] = [255,255,255]   # 修改图像的一个像素点的颜色为白色
print(img.item(150,120,0))  # 查看某个像素点的某个通道的值，img.item(x,y,色彩通道（B=0,G=1,R=2）)
img2.itemset((150,120,0),255) # 修改某个像素点某个颜色通道的值，这里把[150,120]点的蓝色通道值调到最大
print(img2.item(150,120,0))

'''第一个参数为坐标x, 第二个为坐标y，第三个为颜色通道（0为蓝色，1为绿色，2为红色）'''
img2[:,:,1] = 0             # 把图像的绿色亮度调到最小
cv2.imshow('img2',img2)

'''将图像的某部分复制粘贴到图像的其他位置'''
myroi = img3[0:100,0:100]
img3[300:400,300:400] = myroi
cv2.imshow('img3',img3)

cv2.waitKey()               # 成功在窗口显示图像时返回值为-1，没有这句就无法正常显示图像
cv2.destroyAllWindows()     # 关闭所有图像窗口


